# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default ToeJam and Earl Template

game: ToeJam and Earl
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    ToeJam and Earl: 0.5.4 # Version of the world required for this yaml to work as expected.

ToeJam and Earl:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  starting_presents:
    # TJ/E's starting presents.
    # 
    # - None: No presents at all!
    # - Hitops: Four Super Hitops, same as base game
    # - Mobility Mix: One each of Super Hitops, Spring Shoes, Icarus Wings and Rocket Skates
    # - Good: Four random non-trap presents
    # - Any: Four completely random presents, possibly including traps
    none: 0
    hitops: 50
    mobility_mix: 0
    any_good: 0
    any: 0

  islandless:
    # Prevents the game from creating tiny islands out in space, guaranteeing that every item will be accessible.
    # Does not affect islands in water.
    # Disabling this is *not recommended* as it will more often than not result in frustrating, incompletable worlds
    # where crucial progression items spawn in the middle of nowhere.
    'false': 0
    'true': 50

  map_rando:
    # Adds extra randomization to the base game's level generation.
    # 
    # The base game uses eight different level types, each of which specifies different ranges for 8 different parameters,
    # which are randomized just prior to level generation. These include the size of main islands, the amount of water,
    # and how many islets appear in lakes.
    # 
    # In the base game, the order of these level types is fixed — for example, level 4 is always a "big lake" level.
    # 
    # NOTE: Choosing any of these options besides "base" will slightly alter one of the level generation parameters to
    #       ensure that the levels always generate and thereby avoid softlocks during the elevator loading screens.
    # 
    # - Base: Unchanged from the base game.
    # - Base shuffle: Randomizes the order of the base level types. The number of each type remains the same.
    # - Base random: Randomizes both the order and number of the base level types.
    # - Full random: Randomizes all the parameters for every level. This may produce strange-looking levels.
    # - Mapsanity: As full_random, but in addition every level will be completely regenerated every time it's loaded.
    base: 50
    base_shuffle: 0
    base_random: 0
    full_random: 0
    mapsanity: 0

  min_items:
    # The minimum number of items per level. Defaults to the base value of 12.
    # 
    # Levels 1 and 2 will have exactly this many items.
    # For each subsequent level one more item will spawn, up to the configured maximum.
    # 
    # Should be less than or equal to the maximum item count. If not, the maximum value will take precedence.
    # For example, a minimum of 12 and a maximum of 8 will result in every level from 2 onwards having 8 items.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 4
    # Maximum value is 28
    12: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-4-28: 0 # random value between 4 and 28

  max_items:
    # The maximum number of items per level. Defaults to the base value of 28.
    # Level 1 will always have a maximum of 12 items, regardless of what this is set to.
    # 
    # Should be greater than or equal to the minimum item count. If not, will take precedence over the minimum item count.
    # For example, a minimum of 12 and a maximum of 8 will result in every level from 2 onwards having 8 items.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 4
    # Maximum value is 28
    28: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-4-28: 0 # random value between 4 and 28

  last_level:
    # The last level of the game. Set lower for shorter runs.
    # Defaults to 25 (the maximum), as in the base game.
    # Cannot be less than 11 as the game mandates ten levels with ship items.
    # Anything whose behaviour is relative to the last or second-last level of the game (e.g. restrictions on the use
    # of Up-Warps) will change in lockstep with this option.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 11
    # Maximum value is 25
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-11-25: 0 # random value between 11 and 25

  local_ship_pieces:
    # Forces all Ship Pieces to be local or remote, in various modes.
    # 
    # - Off (default): Ship Pieces can be in any world.
    # - None: all Ship Pieces will be in other worlds, with the exception of the piece on Level 25.
    # - Full: all Ship Pieces will be local, but may spawn on the ground in addition to the big flashy pedestals.
    # - Vanilla: all Ship Pieces will be local with vanilla placement (i.e. all on the big flashy pedestals).
    'off': 50
    none: 0
    full: 0
    vanilla: 0

  auto_bad_presents:
    # Sets whether bad presents should automatically open when received from other players.
    # Locally-collected ones will not auto-open.
    # 
    # Recommended to reduce the burden of inventory management.
    # 
    # Auto-opening randomizers may cause the game to softlock in certain circumstances so be prepared to rewind.
    none: 0
    no_randomizer: 50
    all: 0

  auto_buck_presents:
    # Sets whether Extra Buck and Jackpot presents should automatically open when received from other players.
    # Locally-collected ones will not auto-open.
    'false': 50
    'true': 0

  auto_point_presents:
    # Sets whether point presents should automatically open when received from other players.
    # Locally-collected ones will not auto-open.
    # 
    # Has no effect unless point presents are enabled.
    'false': 50
    'true': 0

  bad_food:
    # Includes bad food (Slimy Fungus, Fish Bones etc) in the item pool.
    'false': 0
    'true': 50

  bad_presents:
    # Includes bad presents (Earthling, Total Bummer etc) in the item pool.
    'false': 0
    'true': 50

  trap_weights:
    # Specifies the relative frequency of each type of trap in the item pool.
    # Set a trap weight to zero to disable it.
    # 
    # Available traps:
    # 
    # - Cupid: scrambles controls
    # - Burp: makes you burp
    # - Sleep: makes you fall asleep
    # - Skates: gives you rocket skates
    # - Earthling: spawns an earthling
    # - Randomizer: randomizes all of your presents
    burp: 4
    cupid: 5
    earthling: 2
    randomizer: 0
    skates: 1
    sleep: 3

  trap_percentage:
    # What percentage of the item pool will be traps.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  map_reveals:
    # Adds five Progressive Map Reveal items, which reveal 1/5 of the remaining maps at a time.
    # If last_level is 25 (the default), this means 1–5, 6–10, etc. Otherwise these ranges will vary somewhat.
    # In-game dialogue will always explain exactly which maps have been uncovered.
    # Revealed squares will be "glass" as if revealed by a telephone, so still give points when fully uncovered.
    # 
    # Note that because the game isn't able to(? or isn't programmed to) render an entire map full of glass tiles,
    # the outer border of each map will be left as is.
    'false': 50
    'true': 0

  local_map_reveals:
    # Forces map reveals to be local items and balances placement so that they never appear too late to be useful
    # (assuming you've collected all of them up to that point). Highly recommended for solo games.
    # For example, if a particular map reveal would uncover levels 1–5, it is guaranteed to appear on one of those levels.
    # Map reveals placed on level 1 will be one of the four immediately-accessible items on the starting islands.
    'false': 50
    'true': 0

  elevator_keys:
    # Adds progressive elevator keys, new progression items that lock certain elevators until found.
    'false': 0
    'true': 50

  key_gap:
    # Determines the spacing between levels with locked elevators.
    # For example, setting this to 4 will lock the elevators on levels 4, 8, 12, 16, 20 and 24.
    # 
    # Level 1 will never require an elevator key, even if this is set to 1.
    # Any number greater than 12 will result in a single key only for that level's elevator.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 24
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-24: 0 # random value between 1 and 24
    all: 0 # equivalent to 1
    regular: 50 # equivalent to 4
    light: 0 # equivalent to 8
    lightest: 0 # equivalent to 13

  max_rank_check:
    # Adds one additional check for each rank up to the value chosen.
    # 
    # If this setting is enabled, two extra Mole safeguards will be automatically patched in:
    # - Moles will not steal Promotion presents.
    # - You will receive points for any presents stolen by Moles.
    # 
    # If you have changed last_level, min_items or max_items, rank point thresholds will be rescaled
    # to be attainable in the smaller game world. See also: the rank_rescaling option.
    # 
    # Set to 0 to disable.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 8
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-8: 0 # random value between 0 and 8
    off: 0 # equivalent to 0
    dufus: 0 # equivalent to 1
    poindexter: 0 # equivalent to 2
    peanut: 0 # equivalent to 3
    dude: 0 # equivalent to 4
    bro: 50 # equivalent to 5
    homey: 0 # equivalent to 6
    rapmaster: 0 # equivalent to 7
    funk_lord: 0 # equivalent to 8

  rank_rescaling:
    # Determines how rank point thresholds rescale in smaller worlds.
    # Only functions if max_rank_check > 0 *and* at least one of last_level, min_items and max_items has been changed.
    # 
    # - None: No rescaling. Rank thresholds are vanilla.
    #         ⚠ Likely to result in fill errors if last_level is low and max_rank_check is high.
    # - Max check: Rescales point thresholds so that you reach your chosen max_rank_check towards the end of the game.
    # - Funk Lord (default): Rescales point thresholds so that you reach Funk Lord towards the end of the game.
    none: 0
    max_check: 0
    funk_lord: 50

  reach_level_checks:
    # Adds extra checks that trigger when you reach a new highest level.
    'false': 50
    'true': 0

  mailbox_checks:
    # Adds mailbox purchases as checks. The exact number of extra checks is RNG-dependent.
    # On average this is 39–42 (13–14 mailboxes), but the actual number can be any multiple of 3 between 9 and 72.
    'false': 50
    'true': 0

  lemonade_check:
    # Adds an extra check for drinking the lemonade on Level 0.
    'false': 50
    'true': 0

  upwarp_present:
    # Mutator that changes the Un-Fall present into an Up-Warp present that always sends you up one level,
    # even if you haven't yet made it that far by elevator. Poof!
    # NB: Not currently accounted for in logic.
    'false': 50
    'true': 0

  character:
    # Which character you want to play as.
    toejam: 50
    earl: 0
    both: 0

  game_overs:
    # What to do in the event of a game over.
    # 
    # - Disable: Forces infinite lives so game overs never happen. Also removes Extra Life presents.
    # - Drop Down: Forces TJ/E to fall down one level, after which they respawn normally.
    # - Reset: Return to the title screen, as in the base game. Some progress will be lost.
    disable: 0
    drop_down: 50
    reset: 0

  earthling_rando:
    # Randomizes Earthling placement.
    # 
    # - Base: as in the vanilla game
    # - Base shuffle: shuffles the vanilla 25 sets of Earthlings
    # - Nice random: controlled random Earthlings (see below)
    # - Full random: completely random Earthlings, no restrictions
    # 
    # * "Nice random" means the Earthling numbers and distribution across levels are based on the vanilla game, but
    #   much more variation is possible. Some restrictions still apply, e.g. there is a maximum of 1 of each friendly
    #   Earthling on each level.
    base: 50
    base_shuffle: 0
    nice_random: 0
    earthlingsanity: 0

  earthling_rando_niceness:
    # Only has an effect if earthling_rando is set to nice_random.
    # 
    # Tightens the distribution of Earthlings, making "normal" Earthling placements more likely.
    # Rare spawns will never be impossible, but will become vanishingly unlikely at higher values.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 10
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-10: 0 # random value between 1 and 10

  sleep_when_idle:
    # Whether TJ/E will fall asleep if left idle.
    # Defaults to on, as in the base game.
    # School books and sleep traps will still work even if this is set to off.
    'false': 0
    'true': 50

  walk_speed:
    # Increases/decreases walking speed, as a percentage of the base speed.
    # Roads boost this by a further 25%, as in the base game.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 150
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-150: 0 # random value between 50 and 150
    highest: 0 # equivalent to 150
    higher: 0 # equivalent to 125
    base: 50 # equivalent to 100
    lower: 0 # equivalent to 75
    lowest: 0 # equivalent to 50

  present_timers:
    # Increases/decreases duration of action presents (Super Hitops etc), as a percentage of the base time.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 50
    # Maximum value is 150
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-50-150: 0 # random value between 50 and 150
    highest: 0 # equivalent to 150
    higher: 0 # equivalent to 125
    base: 50 # equivalent to 100
    lower: 0 # equivalent to 75
    lowest: 0 # equivalent to 50

  free_earthling_services:
    # Makes all Earthling services free. (Wiseman/Opera Singer/Wizard)
    'false': 50
    'true': 0

  fast_loads:
    # Massively speeds up loading by forcing the game to stop the elevator as soon as the next level is ready.
    'false': 50
    'true': 0

  expanded_inventory:
    # Expands the inventory to 64 slots (4× the base).
    # The game will also remember how far you scrolled the inventory down when you reopen it.
    'false': 0
    'true': 50

  point_presents:
    # Adds a new type of present that gives a flat number of points.
    # The exact point value varies based on your rank settings, but, very roughly,
    # opening two of these presents will, on average, get you to the next rank.
    'false': 50
    'true': 0

  sound_rando:
    # Randomizes all PCM and PSG sound effects in the game. For sanity's sake, two sounds will never be randomized:
    # the menu blip and the Rocket Skates "blast-off" sound.
    # 
    # None: No randomization.
    # Most: Randomizes all PCM and PSG sound effects except the four that affect the music.
    # All: Also randomizes the four sounds used in the music (clap, kick, record scratch and snare).
    none: 50
    most: 0
    all: 0

  game_version:
    # Which revision of the game your ROM is. Defaults to the more easily obtainable REV02.
    # 
    # REV02 is the version that was available e.g. via Mega Drive/Genesis Classics on Steam.
    # You may have a REV00 ROM if you dumped your original cartridge.
    # 
    # If you aren't sure which version you have, open it in any editor (text or binary)
    # and check the header. A date of 1991.JUL is REV00; a date of 1991.OCT is REV02.
    rev00: 0
    rev02: 50

  unused_present_sprites:
    # Two unused present sprites remain in the ROM but aren't used.
    # This option adds them back into the game.
    'false': 0
    'true': 50

  presentsanity:
    # Turns every present into a Mystery Present. Good luck!
    'false': 50
    'true': 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
